package com.yf.model.ai.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Builder;
import lombok.Data;

import java.util.Set;

/**
 * 用户聊天-会话详情
 *
 * @author : YiFei
 * @since : 2025/7/15 11:22
 */
@Data
@Builder
@Schema(description = "用户聊天-会话详情")
public class UserChatConversationDetailVO {

    @Schema(description = "面具配置")
    private AiMaskInfoVO maskInfo;

    @Schema(description = "会话信息")
    private AiConversationInfoVO conversationInfo;

    @Schema(description = "会话配置")
    private AiConfigInfoVO configInfo;

    @Schema(description = "工具列表")
    private Set<Integer> toolIds;

    @Data
    @Builder
    public static class AiConversationInfoVO {
        /**
         * 主键
         */
        @Schema(description = "主键")
        private Long id;

        /**
         * 会话名
         */
        @Schema(description = "会话标题")
        private String title;
    }

    @Data
    @Builder
    public static class AiMaskInfoVO {
        /**
         * 主键
         */
        @Schema(description = "主键")
        private Integer id;

        /**
         * 面具名
         */
        @Schema(description = "面具名")
        private String name;

        /**
         * 图标
         */
        @Schema(description = "图标")
        private String icon;
    }

    @Data
    @Builder
    public static class AiConfigInfoVO {
        /**
         * 主键
         */
        @Schema(description = "主键")
        private Integer id;

        /**
         * 模型名称 (e.g., "deepseek-reasoner")
         */
        @Schema(description = "模型名称 (e.g. 'deepseek-reasoner')")
        private String model;

        /**
         * 温度
         */
        @Schema(description = "温度")
        private Double temperature;
    }
}
